/**
 * 10.树
 * 10.1 树数据结构
 * 10.2 树相关术语
 * 10.3 二叉树和二叉搜索树
 * 10.3.1 创建 BinarySearchTree 类
 * 10.3.2 向二叉搜索树种插入一个键
 * 10.4 树的遍历
 * 10.4.1 中序遍历
 * 10.4.2 先序遍历
 * 10.4.3 后序遍历
 * 10.5 搜索树种的值
 *      搜索最小值
 *      搜索最大值
 *      搜索特定的值
 * 10.5.1 搜索最小值和最大值
 * 10.5.2 搜索一个特定的值
 * 10.5.3 移除一个节点
 *          1. 移除一个叶节点
 *          2. 移除有一个左侧或右侧子节点的节点
 *          3. 移除有两个子节点的节点
 * 10.6 平衡树
 * 10.6.1 Adelson-Velskii-Landi 树 AVL 树
 *          1. 节点高度和平衡因子
 *          2. 平衡操作 - AVL 旋转
 *              LL -> 向右单旋
 *              RR -> 向左单旋
 *              LR -> 向右双旋 ->  先 LL旋转 再 RR 旋转
 *              RL -> 向左双旋 ->  先 RR旋转 再 LL 旋转
 *          3. 向 AVL 树 插入节点
 *          4. 从 AVL 树 移除节点
 * 10.6.2 红黑树
 *          向红黑树中插入节点
 *              - 在插入节点后验证红黑树属性
 *                  红黑树旋转
 */